package eval.results;

import java.io.Serializable;
import java.util.List;

/**
 * This class hold the finish calculate result
 * 
 * @author Amit Peled   <amit.kapina@gmail.com>
 * @author Igal Kaufman <igal.kaufman@gmail.com> 
 */
public class ResultsData implements Serializable, IResultsData {

	private static final long serialVersionUID = 1L;
	private String  engineType;
	private double[] computationTime;
	private double totalExperimentTimeInSec;
	private int experimentTicks;
	private int seedNumber;
	private int[] vmRelocate;
	private int[] numberOfHostAtCloud;
	private int[] numberOfOpenHostAtCloud;
	private int[] numberOfCloseHostAtCloud;
	private int[] numberOfHostTurnOnAtCloud;
	private int[] numberOfHostTurnOffAtCloud;
	private int[] numberOfHostCandidatesForClosing;
	private int[] numberOfVmsAtCloud;
	private int[] numberOfVmsDeploy;
	private int[] numberOfVmsReject;
	private int[] numberOfVmsRemove;
	private int[] numberOfVmsReqToBeDeploy;
	private int[] totalCpuCapcityAtCloud;
	private int[] totalCpuCapcityAtOpenHosts;
	private int[] totalCpuUseAtCloud;
	private double[] totalCpuFreeAtCloud;
	private double[] totalCpuDemandAtCloud;
	private int[] totalDemandSatisfiedAtCloud;
	private int[] totalDemandUnSatisfiedAtCloud;
	private int[] totalMemCapcityAtCloud;
	private int[] totalMemCapcityAtOpenHosts;
	private int[] totalMemUseAtCloud;
	private int[] totalMemFreeAtCloud;
	private int[] totalMemDemandAtCloud;
	private int[] numberOfVmsThatHaveFullSatisfied;
	private int[] numberOfVmsThatHaveUnSatisfied;
	private double[] hostPowerOnEnergyConsumption;
	private double[] hostBaseEnergyConsumption;
	private double[] hostLoadEnergyConsumption;
	private double[] totalConsumption;
	private double[] incomeFromSatisfyDemand;
	private double[] balanceOfIncome;
	private double[] sumOfMinREservtion;
	private int[] gradientValue;
	private List<double[]> freeCpuAtOpenHosts;
	private int[] hostsCaps; 

	/**
	 * Create Instanse of the data
	 * 
	 * @Constructor
	 * @param engineType the type of the engine
	 * @param hostsCaps hosts capacity
	 */
	public ResultsData(String engineType,int[] hostsCaps) {
		this.engineType = engineType;
		this.hostsCaps =  hostsCaps;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getvmRelocate()
	 */
	@Override
	public int[] getvmRelocate() {
		return vmRelocate;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getEngineType()
	 */
	@Override
	public String getEngineType() {
		return engineType;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getNumberOfVmsThatHaveUnSatisfied()
	 */
	@Override
	public int[] getNumberOfVmsThatHaveUnSatisfied() {
		return numberOfVmsThatHaveUnSatisfied;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getComputationTime()
	 */
	@Override
	public double[] getComputationTime() {
		return computationTime;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getTotalExperimentTimeInSec()
	 */
	@Override
	public double getTotalExperimentTimeInSec() {
		return totalExperimentTimeInSec;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getExperimentTicks()
	 */
	@Override
	public int getExperimentTicks() {
		return experimentTicks;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getNumberOfHostAtCloud()
	 */
	@Override
	public int[] getNumberOfHostAtCloud() {
		return numberOfHostAtCloud;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getNumberOfOpenHostAtCloud()
	 */
	@Override
	public int[] getNumberOfOpenHostAtCloud() {
		return numberOfOpenHostAtCloud;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getNumberOfCloseHostAtCloud()
	 */
	@Override
	public int[] getNumberOfCloseHostAtCloud() {
		return numberOfCloseHostAtCloud;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getNumberOfHostTurnOnAtCloud()
	 */
	@Override
	public int[] getNumberOfHostTurnOnAtCloud() {
		return numberOfHostTurnOnAtCloud;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getNumberOfHostTurnOffAtCloud()
	 */
	@Override
	public int[] getNumberOfHostTurnOffAtCloud() {
		return numberOfHostTurnOffAtCloud;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getNumberOfHostCandidatesForClosing()
	 */
	@Override
	public int[] getNumberOfHostCandidatesForClosing() {
		return numberOfHostCandidatesForClosing;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getNumberOfVmsAtCloud()
	 */
	@Override
	public int[] getNumberOfVmsAtCloud() {
		return numberOfVmsAtCloud;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getNumberOfVmsDeploy()
	 */
	@Override
	public int[] getNumberOfVmsDeploy() {
		return numberOfVmsDeploy;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getNumberOfVmsReject()
	 */
	@Override
	public int[] getNumberOfVmsReject() {
		return numberOfVmsReject;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getNumberOfVmsRemove()
	 */
	@Override
	public int[] getNumberOfVmsRemove() {
		return numberOfVmsRemove;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getNumberOfVmsReqToBeDeploy()
	 */
	@Override
	public int[] getNumberOfVmsReqToBeDeploy() {
		return numberOfVmsReqToBeDeploy;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getTotalCpuCapcityAtCloud()
	 */
	@Override
	public int[] getTotalCpuCapcityAtCloud() {
		return totalCpuCapcityAtCloud;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getTotalCpuCapcityAtOpenHosts()
	 */
	@Override
	public int[] getTotalCpuCapcityAtOpenHosts() {
		return totalCpuCapcityAtOpenHosts;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getTotalCpuUseAtCloud()
	 */
	@Override
	public int[] getTotalCpuUseAtCloud() {
		return totalCpuUseAtCloud;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getTotalCpuFreeAtCloud()
	 */
	@Override
	public double[] getTotalCpuFreeAtCloud() {
		return totalCpuFreeAtCloud;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getTotalCpuDemandAtCloud()
	 */
	@Override
	public double[] getTotalCpuDemandAtCloud() {
		return totalCpuDemandAtCloud;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getTotalDemandSatisfiedAtCloud()
	 */
	@Override
	public int[] getTotalDemandSatisfiedAtCloud() {
		return totalDemandSatisfiedAtCloud;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getTotalDemandUnSatisfiedAtCloud()
	 */
	@Override
	public int[] getTotalDemandUnSatisfiedAtCloud() {
		return totalDemandUnSatisfiedAtCloud;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getTotalMemCapcityAtCloud()
	 */
	@Override
	public int[] getTotalMemCapcityAtCloud() {
		return totalMemCapcityAtCloud;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getTotalMemCapcityAtOpenHosts()
	 */
	@Override
	public int[] getTotalMemCapcityAtOpenHosts() {
		return totalMemCapcityAtOpenHosts;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getTotalMemUseAtCloud()
	 */
	@Override
	public int[] getTotalMemUseAtCloud() {
		return totalMemUseAtCloud;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getTotalMemFreeAtCloud()
	 */
	@Override
	public int[] getTotalMemFreeAtCloud() {
		return totalMemFreeAtCloud;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getTotalMemDemandAtCloud()
	 */
	@Override
	public int[] getTotalMemDemandAtCloud() {
		return totalMemDemandAtCloud;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getNumberOfVmsThatHaveFullSatisfied()
	 */
	@Override
	public int[] getNumberOfVmsThatHaveFullSatisfied() {
		return numberOfVmsThatHaveFullSatisfied;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getTotalExperimentExecutionTimeInSec()
	 */
	@Override
	public double getTotalExperimentExecutionTimeInSec() {
		return getTotalExperimentExecutionTimeInSec()/experimentTicks;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getTotalRequestCPU()
	 */
	@Override
	public double getTotalRequestCPU() {
		double total = 0;
		for (double i : getTotalCpuDemandAtCloud()) {
			total +=i;
		}
		return total;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getTotalRequestMEM()
	 */
	@Override
	public int getTotalRequestMEM() {
		int total = 0;
		for (int i : getTotalMemDemandAtCloud()) {
			total +=i;
		}
		return total;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getTotalNumebrVmWithFullSatisfied()
	 */
	public int getTotalNumebrVmWithFullSatisfied() {
		int total = 0;
		for (int i : getNumberOfVmsThatHaveFullSatisfied()) {
			total +=i;
		}
		return total;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getTotalNumebrVmWithUnSatisfied()
	 */
	@Override
	public int getTotalNumebrVmWithUnSatisfied() {
		int total = 0;
		for (int i : getNumberOfVmsReqToBeDeploy()) {
			total +=i;
		}
		return total-getTotalNumebrVmWithFullSatisfied();
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getPowerOnEnergyConsumption()
	 */
	@Override	
	public double[] getPowerOnEnergyConsumption() {
		return hostPowerOnEnergyConsumption;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getBaseEnergyConsumption()
	 */
	@Override	
	public double[] getBaseEnergyConsumption() {
		return hostBaseEnergyConsumption;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getLoadEnergyConsumption()
	 */
	@Override
	public double[] getLoadEnergyConsumption() {
		return hostLoadEnergyConsumption;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getIncomeFromSatisfyDemand()
	 */
	@Override
	public double[] getIncomeFromSatisfyDemand() {
		return incomeFromSatisfyDemand;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getBalanceOfIncome()
	 */
	@Override	
	public double[] getBalanceOfIncome() {
		return balanceOfIncome;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getTotalCost()
	 */
	@Override
	public double getTotalCost() {
		return hostPowerOnEnergyConsumption[experimentTicks-1]+hostBaseEnergyConsumption[experimentTicks-1] +
				hostLoadEnergyConsumption[experimentTicks-1];
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getTotalIncome()
	 */
	@Override
	public double getTotalIncome() {
		return incomeFromSatisfyDemand[experimentTicks-1];
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getBalance()
	 */
	@Override
	public double getBalance() {
		return balanceOfIncome[experimentTicks-1];
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getGradientValue()
	 */
	@Override
	public int[] getGradientValue() {
		return gradientValue;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getTotalConsumption()
	 */
	@Override
	public double[] getTotalConsumption() {
		return totalConsumption;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getSumOfMinREservtion()
	 */
	@Override
	public double[] getSumOfMinREservtion() {
		return sumOfMinREservtion;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#ggetHostCap(int)
	 */
	@Override
	public int ggetHostCap(int i) {
		return hostsCaps[i];
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#getSeedNumber()
	 */
	@Override
	public int getSeedNumber(){
		return this.seedNumber;
	}

	/* (non-Javadoc)
	 * @see eval.results.IResultsData#ggetFreeCpuAtOpenHosts(int)
	 */
	@Override
	public double[] ggetFreeCpuAtOpenHosts(int i) {
		double[] toRet = new double[experimentTicks];
		for( int j = 0; j<experimentTicks;j++) {
			toRet[j] = freeCpuAtOpenHosts.get(j)[i];
		}
		return toRet;
	}

	/**
	 * set Computation Time
	 * 
	 * @param computationTime 
	 */
	public void setComputationTime(double[] computationTime) {
		this.computationTime = computationTime;
	}

	/**
	 * set Total Experiment Time In Sec
	 * 
	 * @param totalExperimentTimeInSec
	 */
	public void setTotalExperimentTimeInSec(double totalExperimentTimeInSec) {
		this.totalExperimentTimeInSec = totalExperimentTimeInSec;
	}

	/**
	 * set Experiment Ticks
	 * 
	 * @param experimentTicks
	 */
	public void setExperimentTicks(int experimentTicks) {
		this.experimentTicks = experimentTicks;
	}

	/**
	 * set Number Of Host At Cloud
	 * 
	 * @param numberOfHostAtCloud
	 */
	public void setNumberOfHostAtCloud(int[] numberOfHostAtCloud) {
		this.numberOfHostAtCloud = numberOfHostAtCloud;
	}

	/**
	 * set Number Of Open Host At Cloud
	 * 
	 * @param numberOfOpenHostAtCloud
	 */
	public void setNumberOfOpenHostAtCloud(int[] numberOfOpenHostAtCloud) {
		this.numberOfOpenHostAtCloud = numberOfOpenHostAtCloud;
	}

	/**
	 * set Number Of Close Host At Cloud
	 * 
	 * @param numberOfCloseHostAtCloud
	 */
	public void setNumberOfCloseHostAtCloud(int[] numberOfCloseHostAtCloud) {
		this.numberOfCloseHostAtCloud = numberOfCloseHostAtCloud;
	}

	/**
	 * set Number Of Host Turn On At Cloud
	 * 
	 * @param numberOfHostTurnOnAtCloud
	 */
	public void setNumberOfHostTurnOnAtCloud(int[] numberOfHostTurnOnAtCloud) {
		this.numberOfHostTurnOnAtCloud = numberOfHostTurnOnAtCloud;
	}

	/**
	 * set Number Of Host Turn Off At Cloud
	 * 
	 * @param numberOfHostTurnOffAtCloud
	 */
	public void setNumberOfHostTurnOffAtCloud(int[] numberOfHostTurnOffAtCloud) {
		this.numberOfHostTurnOffAtCloud = numberOfHostTurnOffAtCloud;
	}

	/**
	 * set Number Of Host Candidates For Closing
	 * 
	 * @param numberOfHostCandidatesForClosing
	 */
	public void setNumberOfHostCandidatesForClosing(
			int[] numberOfHostCandidatesForClosing) {
		this.numberOfHostCandidatesForClosing = numberOfHostCandidatesForClosing;
	}

	/** 
	 * set Number Of VMs At Cloud
	 * 
	 * @param numberOfVmsAtCloud
	 */
	public void setNumberOfVmsAtCloud(int[] numberOfVmsAtCloud) {
		this.numberOfVmsAtCloud = numberOfVmsAtCloud;
	}

	/**
	 * set Number Of VMs Deploy
	 * 
	 * @param numberOfVmsDeplo
	 */
	public void setNumberOfVmsDeploy(int[] numberOfVmsDeplo) {
		this.numberOfVmsDeploy = numberOfVmsDeplo;
	}

	/**
	 * set Number Of Reject VMs
	 * 
	 * @param numberOfVmsReject
	 */
	public void setNumberOfVmsReject(int[] numberOfVmsReject) {
		this.numberOfVmsReject = numberOfVmsReject;
	}

	/**
	 * set Number Of Removed VMs 
	 * 
	 * @param numberOfVmsRemove
	 */
	public void setNumberOfVmsRemove(int[] numberOfVmsRemove) {
		this.numberOfVmsRemove = numberOfVmsRemove;
	}

	/**
	 * set Number Of VMs Request To Be Deploy
	 * 
	 * @param numberOfVmsReqToBeDeploy
	 */
	public void setNumberOfVmsReqToBeDeploy(int[] numberOfVmsReqToBeDeploy) {
		this.numberOfVmsReqToBeDeploy = numberOfVmsReqToBeDeploy;
	}

	/**
	 * set Total CPU Capacity At Cloud
	 * 
	 * @param totalCpuCapcityAtCloud
	 */
	public void setTotalCpuCapcityAtCloud(int[] totalCpuCapcityAtCloud) {
		this.totalCpuCapcityAtCloud = totalCpuCapcityAtCloud;
	}

	/**
	 * set Total CPU Capcity At Open Hosts
	 * 
	 * @param totalCpuCapcityAtOpenHosts
	 */
	public void setTotalCpuCapcityAtOpenHosts(int[] totalCpuCapcityAtOpenHosts) {
		this.totalCpuCapcityAtOpenHosts = totalCpuCapcityAtOpenHosts;
	}

	/**
	 * set Total CPU Use At Cloud
	 * 
	 * @param totalCpuUseAtCloud
	 */
	public void setTotalCpuUseAtCloud(int[] totalCpuUseAtCloud) {
		this.totalCpuUseAtCloud = totalCpuUseAtCloud;
	}

	/**
	 * set Total CPU Free At Cloud
	 * 
	 * @param totalCpuFreeAtCloud
	 */
	public void setTotalCpuFreeAtCloud(double[] totalCpuFreeAtCloud) {
		this.totalCpuFreeAtCloud = totalCpuFreeAtCloud;
	}

	/**
	 * set Total CPU Demand At Cloud
	 * 
	 * @param totalCpuDemandAtCloud2
	 */
	public void setTotalCpuDemandAtCloud(double[] totalCpuDemandAtCloud2) {
		this.totalCpuDemandAtCloud = totalCpuDemandAtCloud2;
	}

	/**
	 * set Total Satisfied Demand At Cloud
	 * 
	 * @param totalCpuDemandSatisfiedAtCloud
	 */
	public void setTotalDemandSatisfiedAtCloud(
			int[] totalCpuDemandSatisfiedAtCloud) {
		this.totalDemandSatisfiedAtCloud = totalCpuDemandSatisfiedAtCloud;
	}

	/**
	 * set Total UnSatisfied Demand At Cloud
	 * 
	 * @param totalCpuDemandUnSatisfiedAtCloud
	 */
	public void setTotalDemandUnSatisfiedAtCloud(
			int[] totalCpuDemandUnSatisfiedAtCloud) {
		this.totalDemandUnSatisfiedAtCloud = totalCpuDemandUnSatisfiedAtCloud;
	}

	/**
	 * set Total MEM Capacity At Cloud
	 * 
	 * @param totalMemCapcityAtCloud
	 */
	public void setTotalMemCapcityAtCloud(int[] totalMemCapcityAtCloud) {
		this.totalMemCapcityAtCloud = totalMemCapcityAtCloud;
	}

	/**
	 * set Total MEM Capacity At OpenHosts
	 * 
	 * @param totalMemCapcityAtOpenHosts
	 */
	public void setTotalMemCapcityAtOpenHosts(int[] totalMemCapcityAtOpenHosts) {
		this.totalMemCapcityAtOpenHosts = totalMemCapcityAtOpenHosts;
	}

	/**
	 * set Total MEM Use At Cloud
	 * 
	 * @param totalMemUseAtCloud
	 */
	public void setTotalMemUseAtCloud(int[] totalMemUseAtCloud) {
		this.totalMemUseAtCloud = totalMemUseAtCloud;
	}

	/**
	 * set Total MEM Free At Cloud
	 * 
	 * @param totalMemFreeAtCloud
	 */
	public void setTotalMemFreeAtCloud(int[] totalMemFreeAtCloud) {
		this.totalMemFreeAtCloud = totalMemFreeAtCloud;
	}

	/**
	 * set Total MEM Demand At Cloud
	 * 
	 * @param totalMemDemandAtCloud
	 */
	public void setTotalMemDemandAtCloud(int[] totalMemDemandAtCloud) {
		this.totalMemDemandAtCloud = totalMemDemandAtCloud;
	}

	/**
	 * set Number Of VMs That Have Full Satisfied
	 * 
	 * @param numberOfVmsThatHaveFullSatisfied
	 */
	public void setNumberOfVmsThatHaveFullSatisfied(int[] numberOfVmsThatHaveFullSatisfied) {
		this.numberOfVmsThatHaveFullSatisfied = numberOfVmsThatHaveFullSatisfied;
	}


	/**
	 * set Number Of VMs That Have UnSatisfied
	 * 
	 * @param numberOfVmsThatHaveUnSatisfied
	 */
	public void setNumberOfVmsThatHaveUnSatisfied(
			int[] numberOfVmsThatHaveUnSatisfied) {
		this.numberOfVmsThatHaveUnSatisfied = numberOfVmsThatHaveUnSatisfied;
	}

	/**
	 * set Power On Energy Consumption
	 * 
	 * @param hostPowerOnEnergyConsumption
	 */
	public void setPowerOnEnergyConsumption(double[] hostPowerOnEnergyConsumption) {
		this.hostPowerOnEnergyConsumption = hostPowerOnEnergyConsumption;
	}

	/**
	 * set Base Energy Consumption
	 * 
	 * @param hostBaseEnergyConsumption
	 */
	public void setBaseEnergyConsumption(double[] hostBaseEnergyConsumption) {
		this.hostBaseEnergyConsumption = hostBaseEnergyConsumption;
	}

	/**
	 * set Load Energy Consumption
	 * 
	 * @param hostLoadEnergyConsumption
	 */
	public void setLoadEnergyConsumption(double[] hostLoadEnergyConsumption) {
		this.hostLoadEnergyConsumption = hostLoadEnergyConsumption;
	}

	/**
	 * set Income From Satisfy Demand
	 * 
	 * @param incomeFromSatisfyDemand
	 */
	public void setIncomeFromSatisfyDemand(double[] incomeFromSatisfyDemand) {
		this.incomeFromSatisfyDemand = incomeFromSatisfyDemand;
	}

	/**
	 * set Balance Of Income
	 * 
	 * @param balanceOfIncome
	 */
	public void setBalanceOfIncome(double[] balanceOfIncome) {
		this.balanceOfIncome = balanceOfIncome;
	}

	/**
	 * set VMs Relocated
	 * 
	 * @param vmRelocate
	 */
	public void setVmRelocate(int[] vmRelocate) {
		this.vmRelocate = vmRelocate;
	}


	/**
	 * set Total Consumption
	 * 
	 * @param totalConsumption
	 */
	public void setTotalConsumptione(double[] totalConsumption) {
		this.totalConsumption = totalConsumption;
	}

	/**
	 * set Gradient 
	 * 
	 * @param GradientValueSeries
	 */
	public void setGradientValue(int[] GradientValueSeries){
		this.gradientValue = GradientValueSeries;
	}

	/**
	 * set Sum Of MIN Reservation
	 * 
	 * @param sumOfMinREservtion
	 */
	public void setSumOfMinREservtion(double[] sumOfMinREservtion) {
		this.sumOfMinREservtion = sumOfMinREservtion;
	}

	/**
	 * set Seed Number
	 * 
	 * @param seedNumber
	 */
	public void setSeedNumber(int seedNumber){
		this.seedNumber = seedNumber;
	}

	/**
	 * set Free CPU At Open Hosts
	 * 
	 * @param freeCpuAtOpenHosts
	 */
	public void setFreeCpuAtOpenHosts(List<double[]> freeCpuAtOpenHosts) {
		this.freeCpuAtOpenHosts = freeCpuAtOpenHosts;
	}

}
